`timescale 1ns / 1ps

module init_fondo(filas_i,columnas_i,inicie_fondo_o,inicie_fondo_rgb_o);

	//ENTRADAS
	input [9:0] filas_i;
	input [9:0] columnas_i;
	
	//SALIDAS
	output inicie_fondo_o;
	output [7:0] inicie_fondo_rgb_o;
	
	//PARAMETROS LOCALES
	//LETRA P
	localparam P1_limite_super = 50;
	localparam P1_limite_inf = 70;
	localparam P1_limite_izq = 60;
	localparam P1_limite_der = 160;
	
	localparam P2_limite_super = 70;
	localparam P2_limite_inf = 190;
	localparam P2_limite_izq = 60;
	localparam P2_limite_der = 80;
	
	localparam P3_limite_super = 120;
	localparam P3_limite_inf = 140;
	localparam P3_limite_izq = 80;
	localparam P3_limite_der = 160;
	
	localparam P4_limite_super = 70;
	localparam P4_limite_inf = 120;
	localparam P4_limite_izq = 140;
	localparam P4_limite_der = 160;
	
	//LETRA O
	localparam O1_limite_super = 50;
	localparam O1_limite_inf = 70;
	localparam O1_limite_izq = 190;
	localparam O1_limite_der = 290;
	
	localparam O2_limite_super = 70;
	localparam O2_limite_inf = 170;
	localparam O2_limite_izq = 190;
	localparam O2_limite_der = 210;
	
	localparam O3_limite_super = 170;
	localparam O3_limite_inf = 190;
	localparam O3_limite_izq = 190;
	localparam O3_limite_der = 290;
	
	localparam O4_limite_super = 70;
	localparam O4_limite_inf = 170;
	localparam O4_limite_izq = 270;
	localparam O4_limite_der = 290;

	//LETRA N
	localparam N1_limite_super = 50;
	localparam N1_limite_inf = 190;
	localparam N1_limite_izq = 320;
	localparam N1_limite_der = 340;
	
	localparam N2_limite_super = 55;
	localparam N2_limite_inf = 85;
	localparam N2_limite_izq = 340;
	localparam N2_limite_der = 360;
	
	localparam N3_limite_super = 85;
	localparam N3_limite_inf = 155;
	localparam N3_limite_izq = 360;
	localparam N3_limite_der = 380;
	
	localparam N4_limite_super = 155;
	localparam N4_limite_inf = 185;
	localparam N4_limite_izq = 380;
	localparam N4_limite_der = 400;
	
	localparam N5_limite_super = 50;
	localparam N5_limite_inf = 190;
	localparam N5_limite_izq = 400;
	localparam N5_limite_der = 420;
	
	//LETRA G
	localparam G1_limite_super = 50;
	localparam G1_limite_inf = 70;
	localparam G1_limite_izq = 450;
	localparam G1_limite_der = 550;
	
	localparam G2_limite_super = 70;
	localparam G2_limite_inf = 170;
	localparam G2_limite_izq = 450;
	localparam G2_limite_der = 470;
	
	localparam G3_limite_super = 170;
	localparam G3_limite_inf = 190;
	localparam G3_limite_izq = 450;
	localparam G3_limite_der = 550;
	
	localparam G4_limite_super = 120;
	localparam G4_limite_inf = 170;
	localparam G4_limite_izq = 530;
	localparam G4_limite_der = 550;
	
	localparam G5_limite_super = 120;
	localparam G5_limite_inf = 140;
	localparam G5_limite_izq = 510;
	localparam G5_limite_der = 530;
	
	//SONRISA
	localparam SON1_limite_super = 250;
	localparam SON1_limite_inf = 330;
	localparam SON1_limite_izq = 280;
	localparam SON1_limite_der = 300;
	
	localparam SON2_limite_super = 250;
	localparam SON2_limite_inf = 330;
	localparam SON2_limite_izq = 350;
	localparam SON2_limite_der = 370;
	
	localparam SON3_limite_super = 370;
	localparam SON3_limite_inf = 390;
	localparam SON3_limite_izq = 260;
	localparam SON3_limite_der = 280;
	
	localparam SON4_limite_super = 390;
	localparam SON4_limite_inf = 410;
	localparam SON4_limite_izq = 280;
	localparam SON4_limite_der = 310;
	
	localparam SON5_limite_super = 410;
	localparam SON5_limite_inf = 430;
	localparam SON5_limite_izq = 310;
	localparam SON5_limite_der = 340;
	
	localparam SON6_limite_super = 390;
	localparam SON6_limite_inf = 410;
	localparam SON6_limite_izq = 340;
	localparam SON6_limite_der = 370;
	
	localparam SON7_limite_super = 370;
	localparam SON7_limite_inf = 390;
	localparam SON7_limite_izq = 370;
	localparam SON7_limite_der = 390;
	
	//ASIGNACIÓN SECUENCIAL DE LA LETRA A DIBUJAR SEGÚN SEA EL VALOR DE LA FILA Y LA COLUMNA
	assign letra_p = ((columnas_i >= P1_limite_super) && (columnas_i <= P1_limite_inf) && (filas_i >= P1_limite_izq) && (filas_i <= P1_limite_der))
							||	((columnas_i >= P2_limite_super) && (columnas_i <= P2_limite_inf) && (filas_i >= P2_limite_izq) && (filas_i <= P2_limite_der))
							||	((columnas_i >= P3_limite_super) && (columnas_i <= P3_limite_inf) && (filas_i >= P3_limite_izq) && (filas_i <= P3_limite_der))
							||	((columnas_i >= P4_limite_super) && (columnas_i <= P4_limite_inf) && (filas_i >= P4_limite_izq) && (filas_i <= P4_limite_der));
	
	assign letra_o = ((columnas_i >= O1_limite_super) && (columnas_i <= O1_limite_inf) && (filas_i >= O1_limite_izq) && (filas_i <= O1_limite_der))
							||	((columnas_i >= O2_limite_super) && (columnas_i <= O2_limite_inf) && (filas_i >= O2_limite_izq) && (filas_i <= O2_limite_der))
							||	((columnas_i >= O3_limite_super) && (columnas_i <= O3_limite_inf) && (filas_i >= O3_limite_izq) && (filas_i <= O3_limite_der))
							||	((columnas_i >= O4_limite_super) && (columnas_i <= O4_limite_inf) && (filas_i >= O4_limite_izq) && (filas_i <= O4_limite_der));
							
	assign letra_n = ((columnas_i >= N1_limite_super) && (columnas_i <= N1_limite_inf) && (filas_i >= N1_limite_izq) && (filas_i <= N1_limite_der))
							||	((columnas_i >= N2_limite_super) && (columnas_i <= N2_limite_inf) && (filas_i >= N2_limite_izq) && (filas_i <= N2_limite_der))
							||	((columnas_i >= N3_limite_super) && (columnas_i <= N3_limite_inf) && (filas_i >= N3_limite_izq) && (filas_i <= N3_limite_der))
							||	((columnas_i >= N4_limite_super) && (columnas_i <= N4_limite_inf) && (filas_i >= N4_limite_izq) && (filas_i <= N4_limite_der))
							||	((columnas_i >= N5_limite_super) && (columnas_i <= N5_limite_inf) && (filas_i >= N5_limite_izq) && (filas_i <= N5_limite_der));
							
	assign letra_g = ((columnas_i >= G1_limite_super) && (columnas_i <= G1_limite_inf) && (filas_i >= G1_limite_izq) && (filas_i <= G1_limite_der))
							||	((columnas_i >= G2_limite_super) && (columnas_i <= G2_limite_inf) && (filas_i >= G2_limite_izq) && (filas_i <= G2_limite_der))
							||	((columnas_i >= G3_limite_super) && (columnas_i <= G3_limite_inf) && (filas_i >= G3_limite_izq) && (filas_i <= G3_limite_der))
							||	((columnas_i >= G4_limite_super) && (columnas_i <= G4_limite_inf) && (filas_i >= G4_limite_izq) && (filas_i <= G4_limite_der))
							||	((columnas_i >= G5_limite_super) && (columnas_i <= G5_limite_inf) && (filas_i >= G5_limite_izq) && (filas_i <= G5_limite_der));
	
	assign sonrisa = ((columnas_i >= SON1_limite_super) && (columnas_i <= SON1_limite_inf) && (filas_i >= SON1_limite_izq) && (filas_i <= SON1_limite_der))
							||	((columnas_i >= SON2_limite_super) && (columnas_i <= SON2_limite_inf) && (filas_i >= SON2_limite_izq) && (filas_i <= SON2_limite_der))
							||	((columnas_i >= SON3_limite_super) && (columnas_i <= SON3_limite_inf) && (filas_i >= SON3_limite_izq) && (filas_i <= SON3_limite_der))
							||	((columnas_i >= SON4_limite_super) && (columnas_i <= SON4_limite_inf) && (filas_i >= SON4_limite_izq) && (filas_i <= SON4_limite_der))
							||	((columnas_i >= SON5_limite_super) && (columnas_i <= SON5_limite_inf) && (filas_i >= SON5_limite_izq) && (filas_i <= SON5_limite_der))
							||	((columnas_i >= SON6_limite_super) && (columnas_i <= SON6_limite_inf) && (filas_i >= SON6_limite_izq) && (filas_i <= SON6_limite_der))
							||	((columnas_i >= SON7_limite_super) && (columnas_i <= SON7_limite_inf) && (filas_i >= SON7_limite_izq) && (filas_i <= SON7_limite_der));
	
	//SE DEFINE EL COLOR DEL QUE SE PINTARÁN LAS LETRAS
	assign inicie_fondo_rgb_o = 8'b00101000;
	
	//PINTA LA PANTALLA CON LA LETRA QUE SE ACABA DE ENCONTRAR, SEGÚN EL ANTERIOR BARRIDO
	assign inicie_fondo_o = letra_p || letra_o || letra_n || letra_g || sonrisa;

endmodule
